/*
    SUSAN® - Sole of Unix Save ANything

   

   
*/

#ifndef BAREOS_LIB_BNET_NETWORK_DUMP_H_
#define BAREOS_LIB_BNET_NETWORK_DUMP_H_

class BareosResource;
class QualifiedResourceNameTypeConverter;
class BnetDumpPrivate;

class BnetDump {
 public:
  static std::unique_ptr<BnetDump> Create(std::string own_qualified_name);
  static bool EvaluateCommandLineArgs(const char* cmdline_optarg);

  void SetDestinationQualifiedName(std::string destination_qualified_name);
  void DumpMessageAndStacktraceToFile(const char* ptr, int nbytes) const;

 public:
  ~BnetDump();

  BnetDump(const BnetDump& other) = delete;
  BnetDump(const BnetDump&& other) = delete;
  BnetDump& operator=(const BnetDump& rhs) = delete;
  BnetDump& operator=(const BnetDump&& rhs) = delete;
  BnetDump() = delete;

 private:
  BnetDump(const std::string& own_qualified_name);
  std::unique_ptr<BnetDumpPrivate> impl_;
};

#endif  // BAREOS_LIB_BNET_NETWORK_DUMP_H_
